#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
生成 TabBar 图标脚本
使用 PIL/Pillow 生成简单的图标
需要安装: pip install pillow
"""

from PIL import Image, ImageDraw, ImageFont
import os

# 创建 images 目录
images_dir = 'images'
os.makedirs(images_dir, exist_ok=True)

# 图标尺寸（微信小程序要求 81x81px）
size = 81

def create_icon(text, filename, color='#7A7E83', bg_color='#FFFFFF'):
    """创建图标"""
    # 创建图片
    img = Image.new('RGB', (size, size), color=bg_color)
    draw = ImageDraw.Draw(img)
    
    # 绘制圆形背景
    margin = 8
    draw.ellipse(
        [margin, margin, size - margin, size - margin],
        fill=color,
        outline=None
    )
    
    # 添加文字（使用 emoji 或简单符号）
    try:
        # 尝试使用系统字体
        font_size = 40
        font = ImageFont.truetype("/System/Library/Fonts/Helvetica.ttc", font_size)
    except:
        # 如果失败，使用默认字体
        font = ImageFont.load_default()
    
    # 计算文字位置（居中）
    bbox = draw.textbbox((0, 0), text, font=font)
    text_width = bbox[2] - bbox[0]
    text_height = bbox[3] - bbox[1]
    
    x = (size - text_width) // 2
    y = (size - text_height) // 2 - 5
    
    # 绘制文字
    draw.text((x, y), text, font=font, fill='#FFFFFF')
    
    # 保存图片
    filepath = os.path.join(images_dir, filename)
    img.save(filepath, 'PNG')
    print(f"✓ 生成: {filename}")

def create_simple_icon(icon_type, filename, color='#7A7E83'):
    """创建简单图标（使用几何图形）"""
    # 创建图片（透明背景）
    img = Image.new('RGBA', (size, size), color=(255, 255, 255, 0))
    draw = ImageDraw.Draw(img)
    
    # 绘制圆形背景
    margin = 8
    draw.ellipse(
        [margin, margin, size - margin, size - margin],
        fill=color,
        outline=None
    )
    
    # 根据图标类型绘制不同的图形
    center = size // 2
    
    if icon_type == 'home':
        # 绘制房子图标（简单线条）
        # 屋顶（三角形）
        roof_points = [
            (center, margin + 15),
            (center - 12, margin + 25),
            (center + 12, margin + 25)
        ]
        draw.polygon(roof_points, fill='#FFFFFF', outline=None)
        # 房子主体（矩形）
        house_rect = [center - 10, margin + 25, center + 10, size - margin - 8]
        draw.rectangle(house_rect, fill='#FFFFFF', outline=None)
        # 门
        door_rect = [center - 4, size - margin - 15, center + 4, size - margin - 8]
        draw.rectangle(door_rect, fill=color, outline=None)
    
    elif icon_type == 'record':
        # 绘制图表图标（柱状图）
        bar_width = 6
        bar_spacing = 4
        start_x = center - 10
        
        # 三个柱子
        bars = [
            (start_x, size - margin - 20, start_x + bar_width, size - margin - 8),
            (start_x + bar_width + bar_spacing, size - margin - 15, start_x + bar_width * 2 + bar_spacing, size - margin - 8),
            (start_x + (bar_width + bar_spacing) * 2, size - margin - 12, start_x + bar_width * 3 + bar_spacing * 2, size - margin - 8)
        ]
        for bar in bars:
            draw.rectangle(bar, fill='#FFFFFF', outline=None)
    
    # 保存图片
    filepath = os.path.join(images_dir, filename)
    img.save(filepath, 'PNG')
    print(f"✓ 生成: {filename}")

print("开始生成 TabBar 图标...\n")

# 生成首页图标（未选中）
create_simple_icon('home', 'home.png', color='#7A7E83')
# 生成首页图标（选中）
create_simple_icon('home', 'home-active.png', color='#4A90E2')

# 生成记录图标（未选中）
create_simple_icon('record', 'record.png', color='#7A7E83')
# 生成记录图标（选中）
create_simple_icon('record', 'record-active.png', color='#4A90E2')

print("\n所有图标生成完成！")
print("文件保存在 images/ 目录")

